package com.kitty.record.kittyalgorithm.audition;
/**
 * //实现一个函数，检查一棵二叉树是否为二叉搜索树。
 * 示例 1: 输入:
 *       2
 *      / \
 *     1   3
 * 输出: true
 * 示例 2: 输入:
 *      5
 *     / \
 *    1   4
 *       / \
 *      3   6
 * 输出: false 解释: 输入为: [5,1,4,null,null,3,6]。  
 * 根节点的值为 5 ，但是其右子节点值为 4 。
 * @Author SHEN
 * @Date 2020/12/23
 */
public class LeetCode0405 {
    public boolean isValidBST(TreeNode root) {
        boolean l = true;
        boolean r = true;
        if(root == null){
            return true;
        }



        if (root.left == null && root.right == null) {
            return true;
        }

        if (root.left != null ) {
            if(root.left.val >= root.val){
                return false;
            }
            l = isValidBST(root.left);
        }

        if (root.right != null ) {
            if(root.right.val <= root.val){
                return false;
            }
            r = isValidBST(root.right);
        }
        return l&&r;
    }




    private static class TreeNode {
        int val;
        TreeNode left;
        TreeNode right;

        TreeNode(int x) {
            val = x;
        }
    }
}
